% Document style
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}   % Czech
\usepackage[pdftex]{graphicx}  % images
\usepackage[czech]{babel}
\usepackage{enumerate}

% Begin
\begin{document}
\begin{titlepage}

% FI logo
\begin{center}
	\includegraphics[keepaspectratio]{filogo}
\end{center}

\vfill % vertical center
	\begin{center}
		\LARGE{Štatlař, API k datům o tajuplných místech v Brně}\\
		\bf{PB138 Moderní značkovací jazyky a jejich aplikace}
	\end{center}
\vfill

% Author
\noindent
Autor: {\bf František Dvořáček} ({\tt 208161 FI N-IN})\\
Datum: \today \\
Fakulta Informatiky\\
Masarykova Univerzita

\end{titlepage}

% TOC
%\tableofcontents
%\newpage

% Introduction
%\section{Úvod}
%Úvod.
%\newpage

% Contents
\section{Zadání projektu}
Jedná se o službu poskytující údaje (především geografického charakteru) o různých podzemních prostorách v Brně podobně jako jsou služby na http://www.geonames.org/export/ws-overview.html.

Základem architektury by bylo datové úložiště - nejspíš mysql/postgres/XMLDB, nad kterým by operoval server (nejspíše java) exportující služby pomocí api.

Dále by byla součástí projektu demonstrační mapová aplikace (zde připadá v úvahu forma statické webové stránky doplněné AJAXem).

\section{Můj úkol}
Vypracovat rozhraní umožňující třetím stranám využívat data geografického charakteru o zajímavých místech nalézajících se v Brně.

\section{Zpracování}

Pro realizaci tohoto rozhraní jsem zvolil REST architekturu. REST architekturu jsem neimplementoval v jejím celém rozsahu, tedy obsluhu požadavků GET, POST, PUT a DELETE, ale jen její část a to požadavky GET a POST. 

REST architekturu jsem implementoval pomocí frameworku Restlet, dostupném z webu http://www.restlet.org/. Výhodou tohoto frameworku je jeho snadná instalace a malá velikost. Pro jeho základní běh stačí jediný jar soubor pridaný mezi knihovny projektu. Mezi nevýhodu patří ne úplně kompletní dokumentace a nedostupnost složitějších výukových materiálů.

Základem Restlet frameworku je třída Restlet, obsluhující vytvoření serveru a naslouchání na zvoleném portu. Datový zdroj pro REST operace potom zajistí třída rozšiřující třídu ServerResource. V mém případě je to třída Resource, která implemntuje základní obsluhu požadavků. Třída Resource je rodičem pro třídy Basements, CavesResource a ostatní třídy reprezentující zdroje dostupné v naší databázi.

\section{Příklady}

\begin{itemize}
    \item Příklad URI sloužící pro vrácení všech sklepů v Brně:
    
        \begin{verbatim}
        http://147.251.54.136:8182/basements/
        \end{verbatim}
        
    \item Příklad URI sloužící pro vrácení jednoho místa v Brně:
    
        \begin{verbatim}
        http://147.251.54.136:8182/place/nazevMista
        \end{verbatim}
    
    \item Pro vkládání dat stačí odeslat POST požadavek s daty na URI:
    
        \begin{verbatim}
        http://147.251.54.136:8182/places/
        \end{verbatim}
    
\end{itemize}

Formát vkládaných dat je dle definice KML.

% End
\end{document}
